작품 속 떠나는 여행 • July 25, 2026
다른 사람에게 "나 사과 먹고 싶어!"라고 전하려면 어떻게 해야 할까요? 가장 좋은 방법은 그 사람 앞에 가서 "사과 먹고 싶다~!" 라고 직접 말하는 것입니다.
이처럼 '언어'는 나의 뜻을 상대방에게 전달하는 도구입니다.
그런데 조금 특이한 언어가 있습니다. 바로 C언어입니다. C언어는 사람이 '컴퓨터'에게 자신의 뜻을 전달하기 위해 만들어진 도구입니다. 하지만 깊게 생각해보면 뭔가 이상하다는 점을 느끼게 됩니다.
컴퓨터는 저장하고, 계산하고, 화면에 보여주는 등 일하기 위해 사용하는 도구입니다. 그런데 왜 도구를 사용하기 위해 굳이 '언어'로 뜻을 전달해야 할까요?
우리가 벽에 못을 박을 때 "나는 저 벽에 못을 박겠다" 라고 말으로 명령하나요? 그렇지 않죠. 그냥 망치를 들고 못을 때릴 뿐입니다.
여러분이 평소에 컴퓨터를 사용하는 방식은 어떤가요?
마치 망치로 못을 때리는 것과 같습니다. 사실 컴퓨터로 일하는 데 언어는 필요 없습니다. 그렇다면 C언어는 대체 무엇을 위해 만들어진 걸까요?
컴퓨터는 사실 단순히 사진을 편집하고 티켓을 예약하는 도구가 아닙니다. 컴퓨터의 본질은 '전압을 저장하고 계산하는 도구' 입니다.
컴퓨터 안에는 크게 두 가지가 들어있습니다.
전기는 물이 흐르는 파이프와 비슷합니다. 물이 많이 지나가면 압력이 높고, 적게 지나가면 압력이 낮다고 하듯 전기에도 '전압' 이 존재합니다. 컴퓨터는 이 전압을 0(낮음)과 1(높음) 으로 인식합니다. 그리고 수많은 회로는 이 전기를 어디로 보낼지 정해주는 길 역할을 합니다.
즉, 컴퓨터 안에서 전기를 보낸다는 것은 수많은 0과 1의 신호를 보낸다는 뜻입니다.
컴퓨터는 먼저 01001과 같은 전기 배열을 만듭니다. 이 전기 배열이 수많은 회로를 통과하면서 새로운 값을 만들어 냅니다.
예를 들어,
01001이라는 전기 신호가00010을 만나 정해진 회로를 통과하면01011로 변합니다.
이 값을 저장하고 싶다면 하드디스크와 연결된 회로로 보내면 됩니다. 그럼 하드디스크가 자석을 이용해 나중에 다시 꺼내 쓸 수 있는 물리적인 값으로 변환해 줍니다.
컴퓨터 입장에서는 단순히 전기 배열을 회로에 흘려보낸 것에 불과하지만, 사람의 눈으로 보면 이야기가 달라집니다.
01001은 9입니다.00010은 2입니다.01011은 11입니다.컴퓨터는 그저 전기를 흘려보냈을 뿐인데, 결과적으로 덧셈(9 + 2 = 11)이 이루어진 것입니다.
컴퓨터는 덧셈뿐만 아니라 뺄셈, 곱셈, 나눗셈 등 훨씬 더 복잡하고 다양한 일을 할 수 있습니다.
만약 컴퓨터의 수많은 회로 작동 방식에 숫자로 된 번호(명령어) 를 매기면 어떨까요?
0001을 입력0010을 입력이렇게 지정하면, 입력한 값에 따라 컴퓨터 내부의 연산 장치가 알아서 해당 계산을 수행하게 됩니다. 이 모습, 마치 컴퓨터에 명령을 내리는 것처럼 보이지 않나요?
이러한 원리로 컴퓨터에게 원하는 명령을 전달하기 위해 사람과 컴퓨터가 모두 이해할 수 있는 언어를 만들 필요성이 생긴 것입니다. 그 대표적인 언어가 바로 C언어입니다.
int i = 9;
i += 2;
printf("%d", i);
위 코드는 c언어로 9 + 2를 출력하라는 뜻입니다 이 코드를 작성하면 컴퓨터가 읽을 수 있는 010101... 형태의 0과 1 전기 배열(기계어)로 변환되어 실행됩니다.
그렇다면 우리가 보는 화려한 게임이나 웹페이지는 대체 뭘까요? 그것들도 결국 전부 0과 1로 이루어진 전기 배열입니다.
모니터: 전기 배열을 LED 조명을 통해 보기 편한 화면으로 전환해 주는 도구
마우스/키보드: 사람이 누른 입력을 전기 배열로 바꾸어 컴퓨터에 전달하는 도구
웹 브라우저: 전기 배열을 예쁜 웹 문서 형태로 해석해서 보여주는 도구
단순하게 전압을 계산하는 기계가 또다른 세상을 만들고 세상속에서 살아있게 만들었습니다
여러분의 작은 아이디어가 놀라운 것을 만들어 낼 수 있을 지도 모릅니다
현재글: [컴퓨터 리뷰] 컴퓨터는 왜 '언어'로 대화해야 할까?